﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace GestionEco
{
    public class Cactus : Vegetal
    {
        private static int numero = 0;

        //private string[] typeTerrain;
        public Cactus(bool s, int uneVieMax, int uneSoifMax, int unCoeffSoif, int desPointsActionActuels, int unAgeMax, int uneMajorite, int unNbTourReprod, Image imageCactus)
            : base(s, uneVieMax, 0, 0, 0, 4, 0, 1, 0, uneSoifMax, 2, desPointsActionActuels, unAgeMax, uneMajorite, unNbTourReprod, "Cactus-" + numero++, imageCactus, new List<String> { "Désert" })
        {
        }


        public override void vieillir()
        {
            base.vieillir();
        }
        public override void seNourrir(EtreVivant e)
        {
            base.seNourrir(e);
        }

        public override void boire(int quantite)
        {
            base.boire(quantite);
        }

        public override EtreVivant seReproduire(EtreVivant unCactus)
        {
            Cactus enfant = null;
            if (this.Sexe != unCactus.Sexe)
            {
                Random rnd = new Random();
                int enfVieMax = (this.VieMax + unCactus.VieMax) / 2;
                int enfSoifMax = (this.SoifMax + unCactus.SoifMax) / 2;
                //int enfCoeffSoif = (this.coeffSoif + uneChevre.CoeffSoif) / 2;
                int enfPointsActuel = (this.PointsActionActuels + unCactus.PointsActionActuels) / 2;
                //int enfAgeMax = (this.AgeMax + uneChevre.AgeMax) / 2;
                int enfMajorite = (this.Majorite + unCactus.Majorite) / 2;
                //int enfNbTourReprod = (this.nbTourReprod + uneChevre.NbTourReprod) / 2;
                int enfCoeffSoif = (this.CoeffSoif + unCactus.CoeffSoif) / 2;
                int enfAgeMax = (this.AgeMax + unCactus.AgeMax) / 2;
                int enfS = rnd.Next(1, 3);
                bool enfSexe;

                if (enfS == 1)
                {
                    enfSexe = true;
                }
                else
                {
                    enfSexe = false;
                }

                enfant = new Cactus(enfSexe, enfVieMax, enfSoifMax, enfCoeffSoif, enfPointsActuel, enfAgeMax, this.Majorite, this.NbTourReprod, this.imageEtre);
            }
            else
            {
                Console.WriteLine("Les deux etres vivants ont le meme sexe");
                return null;
            }

            return enfant;
        }
    }
}
